Systems and methods to adapt search results

ABSTRACT

Methods and systems to adapt search results are described. The system receives search information that includes a constraint over a network. The system generates a first search result based on the search information. The system communicates a first user interface, over the network, to the client device. The first user interface is formatted based on first formatting level information. The system receives a first request, over the network, from the client device. The first request includes a description of a first interaction with the first search result. The system identifies a first formatting level based on at least one interaction that was received previous to receiving the first request. The system transitions to a second formatting level based on the first formatting level and the first interaction. The second formatting level is associated with second formatting level information.

TECHNICAL FIELD

This disclosure relates to systems and methods supporting computing anddata processing systems. More particularly, systems and methods to adaptsearch results are described.

RELATED ART

The Internet has become an indispensable tool to modern society. Websites are ubiquitous and offer a plethora of web content. Web contentmay be presented in a manner that is not responsive user interactions.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are illustrated by way of example and not limitation in thefigures of the accompanying drawings, in which:

FIG. 1 is a block diagram illustrating a system, according to anembodiment, to adapt search results based on user interactions;

FIG. 2 illustrates interfaces formatted according to different formats,according to an embodiment

FIG. 3A is a block diagram illustrating data item information, accordingto an embodiment;

FIG. 3B is a block diagram illustrating a data item, according to anembodiment;

FIG. 3C is a block diagram illustrating a request, according to anembodiment;

FIG. 4A is a block diagram illustrating user information, according toan embodiment;

FIG. 4B is a block diagram illustrating user interaction information,according to an embodiment;

FIG. 4C is a block diagram illustrating search history, according to anembodiment;

FIG. 4D is a block diagram illustrating a search record, according to anembodiment;

FIG. 4E is a block diagram illustrating interaction information,according to an embodiment;

FIG. 4F is a block diagram illustrating an interaction record, accordingto an embodiment;

FIG. 5A is a block diagram illustrating formatting level summaryinformation, according to an embodiment;

FIG. 5B is a block diagram illustrating formatting level information,according to an embodiment;

FIG. 5C is a block diagram illustrating element descriptor information,according to an embodiment;

FIG. 5D is a block diagram illustrating element information, accordingto an embodiment;

FIG. 6 is a block diagram illustrating a method, according to anembodiment, to adapt search results based on user interactions;

FIG. 7A is a block diagram illustrating a method, according to anembodiment, to receive a request and generate an interaction record;

FIG. 7B is a flow chart illustrating a method, according to anembodiment, to identify an existing formatting level;

FIG. 7C is a flow chart illustrating a method, according to anembodiment, to identify whether to transition to a new formatting level;

FIG. 8A is a block diagram illustrating a system, according to anembodiment, to adapt search results based on a saved search;

FIG. 8B is a block diagram illustrating a user interface, according toan embodiment, generated based on properties;

FIG. 9A is a block diagram illustrating user information, according toan embodiment;

FIG. 9B is a block diagram illustrating saved search information,according to an embodiment;

FIG. 9C is a block diagram illustrating, a saved search record accordingto an embodiment;

FIG. 9D is a block diagram illustrating saved search propertyinformation, according to an embodiment;

FIG. 9E is a block diagram illustrating a property, according to anembodiment;

FIG. 10A is a flow chart illustrating a method, according to anembodiment, to adapt a search result based on a saved search;

FIG. 10B is a flow chart illustrating a method, according to anembodiment, generate a search result based on properties;

FIG. 11 is a block diagram illustrating a system, according to anembodiment, to reorder the display of information in a data item basedon a preferred data item information;

FIG. 12A is a block diagram illustrating user information, according toan embodiment;

FIG. 12B is a block diagram illustrating preferred data iteminformation, according to an embodiment;

FIG. 13 is a flow chart illustrating a method, according to anembodiment, to reorder the display of information in a data item basedon preferred data item information;

FIG. 14A is a block diagram illustrating a user interface, according toan embodiment;

FIG. 14B is a block diagram illustrating a user interface, according toan embodiment;

FIG. 15 further illustrates a system, according to an embodiment;

FIG. 16 is a block diagram illustrating marketplace applications andpayment applications, according to an embodiment;

FIG. 17 is a block diagram illustrating a high level entity-relationshipdiagram, according to an embodiment; and

FIG. 18 shows a diagrammatic representation of a machine in the form ofa computer system within which may be executed a set of instructions forcausing the machine to perform any one or more of the methodologiesdiscussed herein, according to an example embodiment.

DETAILED DESCRIPTION

In the following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of some example embodiments. It will be evident, however,to one of ordinary skill in the art, that embodiments of the presentdisclosure may be practiced without these specific details.

As described further below, according to various example embodiments ofthe disclosed subject matter described and claimed herein, there areprovided systems and methods to adapt search results. Variousembodiments are described below in connection with the figures providedherein.

According to a first aspect of the disclosure methods and systems foradapting search results based on user interactions are described. Thesystem may include a receiving module that is configured to receivesearch information, over a network, from a client device (e.g., mobiledevice, desktop computer, tablet, etc.). The search information mayinclude one or more constraints (e.g., keywords). The system may furtherinclude a processing module that generates a first search result basedon the search information that includes data items. Merely for example,the data items may include listings that describe items or services thatare for sale on a network-based marketplace such as eBay®—The WorldsOnline Marketplace, of San Jose, Calif. The processing module is furtherconfigured to communicate a first user interface, over the network, tothe client device, the first user interface being formatted based onfirst formatting level information. The receiving module is furtherconfigured to receive a first request, over the network, from the clientdevice, the first request including a description of a first interactionwith the first search result. Merely for example, the first interactionmay include a page-down, or a scroll-down towards the bottom of thesearch results (e.g., 80% of search results), or a swipe-down with avigorous motion that is associated with five pages of search results(e.g., 50% of search results). The processing module is furtherconfigured to identify a first formatting level based on interactionsthat were received previous to the receipt of the first request. Forexample, the previous interactions may be scored, summed, and associatedwith the first formatting level. The processing module is furtherconfigured to transition to a second formatting level based on the firstformatting level and the first interaction. The processing module isfurther configured to associate the second formatting level with secondformatting level information that is utilized to format the second userinterfaces and to communicate the second user interface, over thenetwork, to the client device.

According to a second aspect of the disclosure methods and systems foradapting a search result based on a saved search are described. Thesystem may include a communication module that is configured to receivea request to execute a saved search from a client machine (e.g., mobiledevice, desktop computer, tablet, etc.). The system may further includea saved search module that associates the identified saved search withsearch constraints including keywords, categories and the like that areused to search for data items in a data base. Merely for example, thedata items may include profiles that describe users who sociallyinteract with one another on a network-based social platform such asFacebook® —A Social Utility that Connects You with the People AroundYou, of Menlo Park, Calif. The saved search module may further beconfigured to generate search results based on properties that werestored in a database based on user behavior that was identified inconjunction with a previous execution of the saved search. Merely forexample, one user behavior that may be identified with the search resultfor the saved search may include viewing a data item that describes aperson who speaks Italian and lives in California that, in turn, causesthe storing of a property that includes the attribute-value pair“LANGUAGE=ITALIAN” and a property that includes the attribute-value pair“RESIDENCE=CALIFORNIA.” Accordingly, subsequent executions of the samesaved search may utilize the above mentioned properties to identify thedata items for the search result, order data items in the search resultand surface specific information from the data items for display in thesearch result.

According to a third aspect of the disclosure, methods and systems forreordering the display of information in a data item based on preferreddata item information are described. The system may include a requestmodule that is configured to receive a request from a client machine(e.g., mobile device, desktop computer, tablet, etc.) to display asingle data item and a handler module that is configured to generate andformat an interface (e.g., user interface) to display information in asingle data item. The display of information in the data item may bereordered based on preferred data item information. For example, in theabsence of the preferred data item information, a data item may includeten elements numbered one through ten and the elements may be displayedconsecutively in ascending order. Alternately, in the presence ofpreferred data item information, the handler module may utilize thepreferred data item information to reorder the display of information inthe elements of the data item. For example, the handler module mayutilize the preferred data item information to identify information inthe elements of the data item as primary data item information (e.g.,elements seven, eight, and nine) for immediate display responsive toreceiving a request to view the data item and the other information inthe remaining elements (e.g., elements one through six and ten) assecondary data item information for subsequent display (e.g., displaythat is responsive to receiving subsequent requests from the clientmachine (e.g., page down, scroll down, swipe down, etc.)). The preferreddata item information may include a browsing history and a searchhistory. The browsing history may include properties that wereidentified based on browsing requests that were received from the userand the search history may include constraints in queries that werereceived as search requests from the user.

Adapting Search Results Based on User Interactions

FIG. 1 is a block diagram illustrating a system 100, according to anembodiment, to adapt search results based on user interactions. Thesystem 100 includes a client machine 102 coupled to a monitor 103 thatreceives search information (e.g., query) (operation “A”) that iscommunicated over a network 104 (e.g., Internet) (operation “B”) to aninformation store and retrieve platform 105 that includes a servermachine 106 that, in turn, receives the search information with areceiving module 110 and processes the search information with aprocessing module 112. The server machine 106 may generate searchresults based on the search information, format a user interface 120 toinclude the search results, and communicate the user interface 120 backover the network 104 (operation “C”) to the client machine 102 where itis displayed on the monitor 103 (operation “D”) to a user who operatesthe client machine 102. The user may interact with the search results.For example, the user may “page-up,” “page-down,” “scroll-up,”“scroll-down,” or the like, and do so repeatedly. Responsive toreceiving an interaction, after receiving multiple previousinteractions, the client machine 102 may communicate an interactionrequest including a description of an interaction (e.g., “page-up)(operation “E”) over the network 104 to the server machine 106 that, inturn, receives the interaction request, identifies a first formattinglevel based on the multiple previous interactions, transitions to asecond formatting level based on the first formatting level and theinteraction (e.g., “page-up) most recently received and communicates asecond user interface 120 that is formatted based on the secondformatting level, over the network 104 (operation “F”), to the clientmachine 102. The second formatting level being identified to betterapproximate the mindset of the user. Accordingly, the system 100 tracksthe mindset of the user based on his or her interactions with the searchresults and formats the interfaces (e.g., user interfaces 120)accordingly. For example, a user who enters search information in theform of a query and receives search results may at first be “assessing”the search results to determine whether the query is sufficientlyprecise to identify the desired search results. Additional interactionswith the search results may be suggestive of a shift in the mindset ofthe user. That is, the additional interactions may suggest the user hasmoved beyond an assessment of the precision of the query and is nowshopping the data items by making comparisons. Further interactions maybe suggestive of yet another shift of mindset of the user who may now nolonger be shopping but now looking at specific data items.

FIG. 2 illustrates interfaces formatted according to different formats,according to an embodiment. Illustrated on the left is a user interface120 formatted in an “ASSESS” or “LEVEL 1” level/format which isassociated with a low number of user interactions with the searchresults (e.g., less than a predetermined threshold number of userinteractions that may be configurable). Illustrated in the middle is theuser interface 120 formatted in an “SHOP” or “LEVEL 2” level/formatwhich is associated with a moderate number of user interactions with thesearch results (e.g., less than a predetermined threshold number of userinteractions that may be configurable). Illustrated on the right is theuser interface 120 formatted in a “FIND” or “LEVEL 3” level/format whichis associated with a large number of user interactions with the searchresults (e.g., less than a predetermined threshold number of userinteractions that may be configurable). Other embodiments may includeadditional levels/formats and thresholds that are configurable.

The user interface 120 is illustrated as displaying a varying number ofdata items (e.g., LEVEL1 illustrates five data items; LEVEL2 illustratesthree data items; and LEVEL3 illustrates two data items). Merely forexample, the data items may be embodied as listings that describe itemsor services for sale on a network-based marketplace such as eBay®. Thelistings may include elements that include as a title, a descriptionthat describes the item or service, a price that the item is beingoffered for sale, a condition (e.g., used, new, etc.), an image or theitem or service, a sales format (e.g., immediate purchase, auction,Dutch auction etc.), a location from which the item may be shipped orthe service may be performed, etc. Also for example, according toanother embodiment, the data items may include profiles that describepeople that network in a network-based social network such as Facebook®.Further, the profiles may include elements that include a name of aperson, friends of the person, demographics of the person includingtheir residence, nationality, etc., a history of education including theschools attended by the person, a picture of the person and otherdiscrete pieces of information related to the person. In comparing the“LEVEL 1” format with the “LEVEL 2” format one may observe a fewernumber of data items per user interface (e.g., three in LEVEL 2), moreelements per data item (e.g., four in LEVEL 2) and a larger image perdata item. In comparing the “LEVEL 2” format with the “LEVEL 3” formatone may, again, observe fewer data items per user interface (e.g., twoin LEVEL 3), more elements per data item (e.g., eight in LEVEL 3), and alarger image in each data item.

Returning to FIG. 1, the system 100 further includes a database 114 thatis coupled to the server machine 106 which stores user information 116,formatting level summary information 118 and data item information 119,as described further below. It will be appreciated that otherembodiments may include a client machine 102 that performs theformatting. For example, in such an embodiment, the receiving module 110and the processing module 112 may be adapted to perform the same orsimilar functions on the client machine 102 and the user information 116and the formatting level summary information 118 may be stored on theclient machine 102. In yet another embodiment, the receiving module 110and the processing module 112 may be adapted to perform the same orsimilar functions on the client machine 102 and portions of the userinformation 116 and the formatting level summary information 118 may becommunicated to the client machine 102 to perform the same functions.

FIG. 3A is a block diagram illustrating data item information 119,according to an embodiment. The data item information 119 may includeone or more data items 152. The data item information 119 may beaccessed with a key (e.g., data item identifier) that is used touniquely identify each of the data items 152.

FIG. 3B is a block diagram illustrating a data item 152, according to anembodiment. The data item 152 may include one or more elements 154. Forexample, in one embodiment, the data item 152 may be used to describe alisting of an item that is being offered for sale on a network-basedmarketplace and the elements 154 may include a title of the item, adescription of the item, an image of the item, a condition of the item(e.g., used, new, etc.), a price to purchase the item, a purchase format(e.g., auction, immediate sale), a location of the seller, links torelevant information, and a data item identifier that uniquelyidentifies the data item 152 from other data items 152 in the data iteminformation 119, as shown in FIG. 3A.

FIG. 3C is a block diagram illustrating an interaction request 156,according to an embodiment. The interaction request 156 may becommunicated from the client machine 102 to the server machine 106. Theinteraction request 156 may include an interaction description 158 thatdescribes and interaction with the search results, a session identifier160 that identifies a set of one or more interactions associated with asingle search record, and a user identifier 162 to identify a user onthe information store and retrieve platform 105.

FIG. 4A is a block diagram illustrating user information 116, accordingto an embodiment. The user information 116 may include multiple userinteraction information 200 entries. A user interaction information 200entry is used to store and retrieve information for a particular userthat uses the information store and retrieve platform 105.

FIG. 4B is a block diagram illustrating user interaction information200, according to an embodiment. The user interaction information 200may include a search history 202, an optimal formatting level 206, andan optimal formatting level threshold 207. The search history 202 may beused to store information about searches that are executed by the user.The optimal formatting level 206 identifies the formatting levelassociated with the most number of purchases for the user. For example,a user, “John Doe,” may be associated with three, four and fivepurchases that were respectively recorded at formatting levels three,four and five resulting in an optimal formatting level 206 of five forthe user “John Doe.” The optimal formatting level 206 may change basedon purchases of the user, as recorded at one or more formatting levels,and analysed to generate the optimal formatting level 206. The optimalformatting level threshold 207 may be used to identify whether toadvance over intervening formatting levels to the optimal formattinglevel 206. For example, identifying a level transition to the optimalformatting level threshold 207 of “LEVEL 3” may result in advancing overintermediate “LEVEL 4” and intermediate “LEVEL 5” to immediately formatthe interface (e.g., user interface 120) with the optimal formattinglevel 206, “LEVEL 6.”

FIG. 4C is a block diagram illustrating a search history 202, accordingto an embodiment. The search history 202 may store multiple searchrecords 208. Each search record 208 is used to store information about aparticular search that was executed by the user.

FIG. 4D is a block diagram illustrating a search record 208, accordingto an embodiment. The search record 208 may include constraints 210, asaved flag 212, interaction information 214, a current formatting level215, and a current level score 217. The constraints 210 may be receivedby the information store and retrieve platform 105 to initiate a search.For example, a user may initiate a search by entering constraints 210that are used to search the data items 152. For example, the constraints210 may include one or more keywords including “batman comic books,” orone or more categories including “books,” “mysteries,” “AlfredHitchcock,” or one or more images, or the like for filtering toidentified the desired data items 152. The saved flag 212 may beasserted to signify the constraints 210 may be subsequently reused toexecute another search. For example, a user may enter the constraints210 “batman comic books” and execute subsequent searches using the sameconstraints 210 merely by identifying the search record 208 through aninterface (e.g., user interface 120). The interaction information 214may include interaction records associated with the search. The currentformatting level 215 may be identified based on the current level score217. The current level score 217 may be computed based on theinteraction records in the interaction information 214.

FIG. 4E is a block diagram illustrating interaction information 214,according to an embodiment. The interaction information 214 may includeone or more interaction record 218.

FIG. 4F is a block diagram illustrating an interaction record 218,according to an embodiment. The interaction record 218 may include aninteraction description 158, a classification 222, and an interactionscore 224. The interaction description 158 may describe the interaction.For example, the interaction description 158 may include a “page up” todisplay data items 152 appearing a page earlier in the search results, a“page down” to display data items 152 appearing a page later in thesearch results, a “swipe-up” to display data items 152 appearingmultiple pages earlier in the search results, a “swipe-down” to displaydata items 152 appearing multiple pages later in the search results, a“scroll up” to display data items 152 appearing multiple pages earlierin the search results, a “scroll down” to display data items 152appearing multiple pages later in the search results, an “addconstraint(s)” to add one or more constraints 210 to the constraints210, a “remove constraint(s)” to remove one or more constraints 210 fromthe constraints 210, and the like. The classification 222 may be used toclassify the interaction. For example, the “page up,” “page down,”“swipe-up,” “swipe-down,” “scroll-up,” “scroll-down,” interactions maybe classified “REVIEW,” the “add constraint(s)” interaction may beclassified “ADD CONSTRAINT” and the “remove constraint(s)” interactionmay be classified “REMOVE CONSTRAINT.” The “REVIEW,” “ADD CONSTRAINT,”and “REMOVE CONSTRAINT” classifications 222 may further be associatedwith scores that are added together to generate the current level score217 that is used identify the current formatting level 215. Theinteraction description 158, the classification 222, and the interactionscore 224 may be predetermined and associated with each other, accordingto one embodiment, as follows:

interaction description classification interaction score 158 222 224“page-up” “REVIEW” +1 “page-down” “REVIEW” +1 “scroll-up” “REVIEW” +2“scroll-down” “REVIEW” +2 “swipe-up” “REVIEW” +3 “swipe-down” “REVIEW”+3 “remove constraint(s)” “REMOVE” Reset to “0” “add constraint(s)”“ADD” Reset to “0”In one embodiment the interaction description 158, classification 222,interaction score 224 may be received from the client machine 102 by theinformation store and retrieve platform 105. In another embodiment, theinteraction description 158 may be received from the client machine 102by the information store and retrieve platform 105 and the informationstore and retrieve platform 105 may identify the classification 222, andthe interaction score 224 based on the interaction description 158.

FIG. 5A is a block diagram illustrating formatting level summaryinformation 118, according to an embodiment. The formatting levelsummary information 118 may include one or more formatting levelinformation 250 entries that collectively describe the formatting levelsavailable to the information store and retrieve platform 105. Forexample, the formatting level summary information 118 is illustrated toinclude four formatting levels.

FIG. 5B is a block diagram illustrating formatting level information250, according to an embodiment. The formatting level information 250may include a level identifier 252 (e.g., “LEVEL 1,” “LEVEL 2,” etc.)and definition information 254 that defines the formatting level. Thedefinition information 254 may include interface area information 256, anumber of data items displayed 258, a number of elements per data item260, element descriptor information 262, and a minimum score 264. Theinterface area information 256 may describe the perimeter of andposition of an area on the interface (e.g., user interface 120) torender the data items 152. For example, the interface area information256 may include coordinates that identify the boundaries of the area(e.g., a rectangle of six inches by ten inches located in a particularquadrant of the user interface 120). The number of data items displayed258 is the number of data items 152 to render in the area and the numberof elements per data item 260 is the number of elements to render for asingle data item 152. The element descriptor information 262 describesformatting for each of the particular elements 154 in a data item 152,as described further below. The minimum score 264 is a threshold used toidentify whether to apply the definition information 254 associated withthe formatting level.

FIG. 5C is a block diagram illustrating element descriptor information262, according to an embodiment. The element descriptor information 262describes formatting for the elements 154 in the data item 152. Theelement descriptor information 262 may include one or more elementinformation 263 entries for each of the elements in the data item 152.

FIG. 5D is a block diagram illustrating element information 263,according to an embodiment. The element information 263 describesformatting of a particular element 154 in the data item 152. The elementinformation 263 may include an element identifier 268 that uniquelyidentifies the element 154 in the data item 152, text information 270,and image information 272. The text information 270 may include a textpoint size, a text style, a text format (e.g., bold, italics, etc.) atext position and other formatting attributes that may be applied totext. The image information 272 may include a scaling factor to changethe size of an image, an image style, a framing style (e.g., solid lineboarder, broken line boarder, etc.) and other formatting attributes thatmay be applied to an image.

FIG. 6 is a block diagram illustrating a method 300, according to anembodiment, to adapt search results based on user interactions.Illustrated on the left is a client machine 102 and illustrated on theright is a server machine 106. The method 300 may commence at theoperation 302 with the client machine 102 communicating searchinformation to the server machine 106. The search information mayinclude one or more constraints 210. For example, the search informationmay include constraints 210 in the form of keywords including “batmancomic books.”

At operation 304, at the server machine 106, the receiving module 110may receive the search information. At operation 306, the processingmodule 112 may generate search results based on the search information.For example, the processing module 112 may apply the constraints 210“batman comic books” to the data items 152 in the data item information119 to generate search results that include a set of one or more dataitems 152 that match the constraints 210. The search results may includeone or more pages of data items 152.

At operation 308, the processing module 112 may format an interface(e.g., user interface 120) based on the initial formatting level (e.g.,“LEVEL 1”). For example, the processing module 112 may format a userinterface 120 by applying the definition information 254 associated withthe “ASSESS” formatting level as shown in FIG. 2 to data items 152 inthe search result. At operation 310, the processing module 112 maycommunicate the user interface 120 to the client machine 102.

At operation 312, the client machine 102 may receive and display theuser interface 120. At operation 314, the client machine 102 maycommunicate an interaction request 156 to the server machine 106. Forexample, the interaction request 156 may include an interactiondescription 158 to “page-down.”

At operation 316, at the server machine 106, the receiving module 110may receive and process the interaction request 156 to generate aninteraction record 218, as described further in FIG. 7A. At operation318, the processing module 112 may identify the current formatting level215, as described further in FIG. 7B. For example, the processing module112 may process all of the interaction records 218 that were receivedprior to the interaction record 218 most recently generated to identifythe current level score 217 and the corresponding current formattinglevel 215. In the present example, no interactions were received priorto the present interaction record 218 to “page-down.” At decisionoperation 320, the processing module 112 may identify whether totransition to a new formatting level, as described further in FIG. 7C.If the processing module 112 identifies a transition to a new formattinglevel then processing continues at operation 322. Otherwise processingcontinues at operation 324. At operation 322, the processing module 112may format the interface (e.g., user interface 120) based on the newformatting level. For example, in another example where multiple“page-down” interactions had been received, the processing module 112may format the search results based on the “SHOP” formatting level, asshown in FIG. 2. To this end, according to one example, the processingmodule 112 may apply the definition information 254 associated with the“SHOP” formatting level including interface area information 256 toidentify the boundaries of an area in the interface (e.g., userinterface 120), a number of data items displayed 258 that defines thenumber of data items 152 to include in the area, a number of elementsper data item 260 that defines the number of elements 154 to include perdata item 152, and element descriptor information 262 that is used toformat the particular elements 154 in the data item 152. At operation324, the processing module 112 may format the interface (e.g., userinterface 120) based on the current formatting level 215. For example,the processing module 112 may apply the definition information 254associated with the “ASSESS” formatting level. At operation 325, theprocessing module 112 may add the interaction record 218 that waspreviously generated (e.g., as shown in FIG. 7B) to the appropriateinteraction information 214. At operation 326, the processing module 112may communicate the user interface 120 including the search results tothe client machine 102.

At operation 328, the client machine 102 may receive and display theuser interface 120.

FIG. 7A is a block diagram illustrating a method 350, according to anembodiment, to receive an interaction request 156 and generate aninteraction record 218. The method 350 may commence at operation 352with the receiving module 110 identifying a classification 222 based theinteraction description 158 in the interaction request 156. For example,the receiving module 110 may associate a “page-down” interaction withthe “REVIEW” classification 222. At operation 354, the receiving module110 may store the classification 222 in the interaction record 218. Atoperation 356, the receiving module 110 may identify an interactionscore 224 based on the “page-down” interaction. For example, thereceiving module 110 may associate an interaction score 224 of “+1” withthe “page-down” interaction. At operation 358, the receiving module 110may store the interaction score 224 in the interaction record 218. Atoperation 359, the receiving module 110 may copy the interactiondescription 158 from the interaction request 156 to the interactiondescription 158 in the interaction record 218. At decision operation360, the receiving module 110 may identify whether constraints 210 areadded or removed from the original constraints 210. For example, thereceiving module 110 may compare the constraints 210 in the interactiondescription 158 with the constraints 210 in the search record 208. Ifconstraints 210 are added or removed from the original constraints 210then a branch is made to operation 362. At operation 362, the receivingmodule 110 may generate new search results based on the new set ofconstraints 210. For example, the constraint 210 “Joker” may be added tothe original constraints 210 “batman comic books” to form the new set ofconstraints 210, “batman comic books Joker.” Also, for example, theconstraint 210 “comic books” may be removed from the originalconstraints 210 to form the new set of constraints 210, “batman.”

FIG. 7B is a block diagram illustrating a method 400, according to anembodiment, to identify an existing formatting level. The method 400processes all of the interaction records 218 associated with the presentsearch other than the most recent interaction record 218 to identify thecurrent level score 217 and the corresponding current formatting level215. The method 400 may commence at operation 402 with the processingmodule 112 identifying the appropriate interaction information 214 basedon the interaction request 156. For example, the processing module 112may use the user identifier 162 and the session identifier 160 in theinteraction request 156 to identify the appropriate interactioninformation 214. At operation 404, the processing module 112 may set alevel score to “0.” At operation 408, the processing module 112 mayadvance to the next interaction record 218. At decision operation 410,the processing module 112 may identify whether the interaction record218 includes a classification 222 that describes that addition orremoval of constraints 210. For example, the processing module 112 mayidentify whether the classification 222 matches an “ADD CONSTRAINT” or“REMOVE CONSTRAINT” classification 222. If the processing module 112identifies a match, then a branch is made to operation 404. Otherwise abranch is made to operation 412. At operation 412, the processing module112 may add the interaction score 224 in the interaction record 218 tothe level score. For example, the processing module 112 may add aninteraction score 224 of “+2” to a level score of “+1” to generate a newlevel score of “+3.” At decision operation 414, the processing module112 may identify whether there are more interaction records 218. Ifthere are more interaction records 218 then a branch is made tooperation 408. Otherwise processing continues at operation 416. Atoperation 416, the processing module 112 may identify a formatting levelbased on the level score, store the formatting level as the currentformatting level 215 in the search record 208, and store the level scoreas the current level score 217 in the search record 208. For example,the processing module 112 may compare the level score with the minimumscore 264 for the respective formatting levels to identify theformatting level. If, for example, the level score is less than aminimum score 264 for the “FIND” level but greater than a minimum score264 for the “SHOP” level then the processing module 112 identifies andstores the “SHOP” level.

In the above embodiment the current level score 217 is recomputed basedon the interaction records 218 that are stored in the interactioninformation 214 responsive to receipt of an interaction request 156. Inanother embodiment the current level score 217 may not be recomputedbased on the interaction records 218, but rather, the current levelscore 217 may be incrementally updated based on the interaction score224 that is associated with the interaction request 156 responsive toreceipt of the interaction request 156. In yet another embodiment, thecurrent level score 217 may be stored on the client machine 102 in theform of a cookie and communicated to the server machine 106 in theinteraction request 156.

FIG. 7C is a block diagram illustrating a method 450, according to anembodiment, to identify whether to transition to a new formatting level.The method 450 may commence at decision operation 452 with theprocessing module 112 identifying whether the data items 152 in thesearch results are displayable on a single interface (e.g., userinterface 120). For example, the processing module 112 may compare thenumber of data items 152 in the search result with the value in numberof data items displayed 258 of the respective formatting levels. If thedata items 152 in the search results are displayable with a singleinterface (e.g., user interface 120) then a branch is made to operation472. Otherwise a branch is made to decision operation 454. At decisionoperation 454, the processing module 112 may identify whether the mostrecently received interaction identifies an addition or removal ofconstraints 210. If the most recently received interaction identifiesthe addition or removal of constraints 210 then a branch is made tooperation 470. Otherwise a branch is made to operation 456. At operation456, the processing module 112 may retrieve the interaction score 224for the most recently received interaction from the interaction record218 generated for the most recently received interaction request 156. Atoperation 458, the processing module 112 may retrieve the current levelscore 217 that was generated (e.g., as shown in FIG. 7B) for theinteractions records 218 other than the most recently generatedinteraction record 218. At decision operation 460, the processing module112 may identify whether to transition to a new formatting level. Forexample, the processing module 112 may add the interaction score 224 tothe current level score 217 to compute a sum and compare the sum withthe minimum scores 264 associated with each of the formatting levels toidentify a generated formatting level. For example, the processingmodule 112 may compare the sum with the value in each of the minimumscores 264 that are respectively associated with the differentformatting levels. If, for example, the sum is less than a minimum score264 for the “FIND” level but greater than a minimum score 264 for the“SHOP” level then the processing module 112 identifies the “SHOP” levelas the generated formatting level. Finally, the processing module 112compares the generated formatting level with the current formattinglevel 215 in the search record 208. If the generated formatting level isdifferent from the current formatting level 215 then a branch is made todecision operation 462. Otherwise a branch is made to operation 464. Atoperation 464, the processing module 112 may identify the currentformatting level 215. At decision operation 462, the processing module112 may identify whether to make an accelerated transition to an optimalformatting level 206. For example, if the generated formatting level(e.g., new level) is greater than or equal to the optimal formattinglevel threshold 207 then a branch is made to operation 466. Otherwise abranch is made to operation 468. At operation 466, the processing module112 may identify the optimal formatting level 206 for formatting theinterface (e.g., user interface 120). At operation 468, the processingmodule 112 may identify the generated formatting level as the newformatting level. At operation 470, the processing module 112 mayidentify the “ASSESS” formatting level or the lowest formatting levelfor formatting an interface (e.g., user interface 120). At operation472, the processing module 112 may identify the formatting level forformatting an interface (e.g., user interface 120) based on the numberof data items 152 in the search result, as described above. At operation474, the processing module 112 may return the identified level.

Adapting Search Results Based on a Saved Search

FIG. 8A is a block diagram illustrating a system 500, according to anembodiment, to adapt search results based on a saved search. The system500 may include a client machine 102 coupled to a monitor 103 thatreceives constraints 210 (e.g., query) (operation “A”) for a savedsearch that is communicated over a network 104 (e.g., Internet)(operation “B”) to an information store and retrieve platform 105 thatincludes a server machine 106 that, in turn, includes a communicationmodule 501 that receives the constraints 210, as previously described, asaved search module 502 that stores the constraints 210 for subsequentexecution. The storage of the constraints 210 enables a repeatedexecution of the saved search without reentry of the constraints 210.For example, a user who is shopping for a car may create a saved searchby entering the constraints 210 “Camaro sports car” and repeatedlyexecuting the saved search at various times without reenteringconstraints 210. To this end, the client machine 102 may communicate anidentifier that identifies a particular saved search over the network104 (operation “C”) to the server machine 106 where it is received bycommunication module 501 and processed by the saved search module 502 toidentify the constraints 210 associated with the particular saved searchand generate search results that are communicated (operation “D”) backto the client machine 102. The search results may be generated, asexpected, based on the constraints 210, but also on properties that areidentified based on previous executions of the saved search. Forexample, previous executions of the saved search may be associated withuser behaviour that is processed to identify properties that aresubsequently used to generate search results responsive to execution ofthe saved search. Behaviours may include interactions with the searchresults and other types of behaviours including receiving a bid for anitem that is described by a data item 152, as previously described,receiving a request to view a data item 152, receiving a request to sendan email to the seller of an item that is described by the data item152, and the like. For example, constraints 210 for a saved search mayinclude “Camaro sports car” and properties may include the color red(e.g., COLOR=RED) or a price range of $10K to 20K (e.g., PRICERANGE=$10-20K, USD) that were identified as previous behaviours of theuser who executed the saved search. Accordingly, behaviour associatedwith a saved search may be used to identify properties 560 that, inturn, may be used to generate and format search results. The properties560 may be used to generate and format search results in at least threeways. The properties 560 may be used to identify the data items 152 thatare included in the search results, an ordering of the data items 152 inthe search results and the surfacing of specific information from thedata items 152 for display in the search results.

It will be appreciated that other embodiments may include a clientmachine 102 that generates the search results based on the constraintsand properties and generates and formats the interface (e.g., userinterface) based on the search results. For example, in such anembodiment, the communication module 501 and the saved search module 502may be adapted to perform the same or similar functions on the clientmachine 102 and portions of the saved search information 504 may bestored on the client machine 102. In yet another embodiment, thecommunication module 501 and the saved search module 502 may be adaptedto perform the same or similar functions on the client machine 102 andportions of the saved search information 504 may be communicated to theclient machine 102 as are necessary to perform the same functions.

FIG. 8B is a block diagram illustrating a user interface 120, accordingto an embodiment, that is generated based on constraints 210 andproperties associated with a saved search. For example, the constraints210 for a saved search may include the keywords, “Camaro sports car” andthe properties that were identified based on previous executions of asaved search may include COLOR=RED, and PRICE RANGE=$15-20K, USD. Theproperties 560 may be used to identify the data items 152 that areincluded in the search results, an ordering of the data items 152 in thesearch results and the surfacing of specific information from the dataitems 152 for display in the search results.

The search results may be generated using the constraints 210 and theproperties. For example, according to one embodiment, the constraints210 may be OR'd with the properties to generate the search results thatare included on the user interface 120, as described further below.

The search results may be ordered on the user interface 120 based on theabove mentioned properties. Consider a data item 152 that includeselements 154 that describe an item for sale. For example, the elements154 may include a title, a description, and an image, etc. as previouslydescribed. At callout 510, two data items 152 are displayed before otherdata items 152 in the search results because the element 154 fordescription in the two data items 152 includes text that matches on bothof the identified properties (e.g., COLOR=RED AND PRICE RANGE=$15-20K,USD). At callout 512, two data items are displayed after the data items152 at callout 510 and before data items at callout 514 because theelement 154 for description in the two data items 152 includes text thatmatches on only one of the identified properties (e.g., COLOR=RED ORPRICE RANGE=$15-20K, USD). At callout 514, one data item is displayedafter the data items 152 at callout 510 and callout 512 because theelement 154 for description in the data item 152 does not include textthat matches either of the identified properties (e.g., COLOR=RED ORPRICE RANGE=$15-20K, USD). Accordingly, data items 152 are displayed inan order according to the number of properties that match the elements154 in the data item 152. In another embodiment, the properties maymatch the content of different elements 154 in data item 152. Forexample, the property for PRICE RANGE=$15-20K, USD may match the element154 for price in the data item 152. Accordingly, the user interface 120,as illustrated in FIG. 8B, may be generated based on a match of thePRICE RANGE=$15-20K, USD with the element 154 for description or theelement 154 for price.

The surfacing of specific information from the data items 152 arefurther illustrated in FIG. 8B as being displayed in the search results.For example, notwithstanding some elements 154 always being surfaced ordisplayed (e.g., the title, “CAMARO FOR SALE,” and the image) otherelements 154 such as the element 154 for a description may onlypartially be displayed and the properties may be used to identify thespecific information that is displayed. For example, in the absence of amatch, other information from a particular element 154 (e.g., “ . . . ”)may be displayed.

Returning to FIG. 8A, the information store and retrieve platform 105includes user information 116 and data item information 119, aspreviously described in FIG. 3A, as previously described in FIG. 4A. Theuser information 116 is now illustrated as further including savedsearch information 504.

FIG. 9A is a block diagram illustrating user information 116, accordingto an embodiment. The user information 116 may include multiple savedsearch information 504 entries. A saved search information 504 entry maybe used to store and retrieve information for a particular user thatuses the information store and retrieve platform 105.

FIG. 9B is a block diagram illustrating saved search information 504,according to an embodiment. The saved search information 504 may be usedstore saved search records 552 for a particular user. A user may not usethe feature or save one or multiple saved search records 552.

FIG. 9C is a block diagram illustrating a saved search record 552,according to an embodiment. The saved search record 552 may include asaved search identifier 554 that identifies the saved search from othersaved searches, a search record identifier 556 that identifies a searchrecord 208, and saved search property information 558. The search recordidentifier 556 may be used to retrieve the constraints 210 for the savedsearch and other fields from the search record 208. The saved searchproperty information 558 may include one or more properties that areassociated with the saved search.

FIG. 9D is a block diagram illustrating saved search propertyinformation 558, according to an embodiment. The saved search propertyinformation 558 may include one or more entries of properties 560 thatwere identified and stored in association with the saved search based onthe execution of the saved search. For example, the properties 560 maycollectively characterize behaviour of the user that was learned duringone or more executions of the saved search. For example, one of thesearch results associated with the saved search may include one or moredata items 152 that were viewed by the user for a period of time thatexceeds a predetermined threshold causing an identification ofproperties 560 based on the elements of the data item 152 and storage ofthe properties 560 in the saved search property information 558. Furtherfor example, one or more properties 560 may be stored in the savedsearch property information 558 responsive to a user viewing a data item152 for a quantity of time (e.g., 1 minute) that exceeds a predeterminedthreshold of (forty seconds) causing the saved search module 502 toidentify one or more properties 560 based on the elements in the dataitem 152. Other behaviours associated with the search results of a savedsearch may include identification of receipt of a bid to win an item inan auction, identification of a purchase an item, identification of anemail that is sent to the seller of an item, identification of a requestto scale an image associated with an item, etc.

FIG. 9E is a block diagram illustrating a property 560, according to anembodiment. The property 560 may be identified based on the informationin a data item 152. The property 560 may be identified based on theinformation in one of the elements 154 in a data item 152. The property560 may include an attribute-value pair that includes an attribute 564and a value 566. The attribute may be used to describe an item or aservice. For example, attributes may include color, height, width,weight, length, purpose, function, and the like. The value 566 mayinclude text, a number or both. Examples of properties 560 may includethe following:

COLOR=RED PRICE=$15K, USD WEIGHT=50, POUNDS HEIGHT=6, FEET ENGINE=8,CYLINDERS

FIG. 10A is a block diagram illustrating a method 600, according to anembodiment, to adapt a search result based on saved search. Illustratedon the left is a client machine 102 and illustrated on the right is aserver machine 106. The method 600 may commence at operation 602 withthe client machine 102 communicating constraints 210 for a saved searchto the server machine 106.

At operation 604, at the server machine 106, the communication module501 may receive the constraints 210. At operation 606, the saved searchmodule 502 may generate and store a search record 208, as previouslydescribed. For example, the saved search module 502 may store theconstraints 210 and assert the saved flag 212 in the search record 208.The constraints 210 may, for example, include the keywords, “CamaroSports Car.” At operation 607, the saved search module 502 may generateand store a saved search record 552. For example, the saved searchmodule 502 may generate and store the saved search identifier 554 andthe search record identifier 556.

At operation 608, the client machine 102 may communicate a request toexecute a particular saved search. For example, the client machine 102may communicate an identifier that identifies a saved search thatincludes the above mentioned constraints 210 “Camaro Sports Car.”

At operation 610, at the server machine 106, the communication module501 may receive the request. At operation 612, the saved search module502 may generate search results based on the constraints 210 and furtherbased on the saved search property information 558, as further describedin FIG. 10B. At operation 613, the saved search module 502 may generateand format a user interface 120 based on the search results generated inoperation 612. The saved search module 502 may format the user interface120 by surfacing information in a data item 152 in the search resultsaccording to the properties 560. For example, the saved search module502 may identify and surface portions of the data item 152 that matchany of the properties 560 in the saved search property information 558.Accordingly, properties 560 (e.g., “COLOR=RED” OR “PRICE RANGE=$15-20K,USD) may be utilized to identify and surface one or more elements 154 ina data item 152 or portions of one or more elements 154 in a data item152. For example, consider the following text that is included in anelement 154 that is used for description:

-   -   “CAMARO FOR SALE, 8 cylinders, price is $17K, runs like a dream,        5 speed with racing stripe and leather interior and the outside        color is red.”

The properties 560 “COLOR=RED,” “PRICE RANGE=$15-20K, USD” may be usedto surface the following information:

-   -   “ . . . price is $17K . . . color is red”        The other information (e.g., “CAMARO FOR SALE . . . , 8        cylinders, . . . , runs like a dream, 5 speed with racing stripe        and leather interior and the outside . . . ”) may not be        surfaced from the from the data item 152 because the other        information fails to match any of the properties 560.        Nevertheless, other elements 154 in the data item 152 may always        be displayed, such as a title and image. At operation 614, the        saved search module 502 may communicate the user interface 120        to the client machine 102.

At operation 616, the client machine 102 may receive and display theuser interface 120 that includes the search results. At operation 618,the client machine 102 may communicate a request to perform a userbehaviour that operates on the search results to the server machine 106.For example, the client machine 102 may communicate a request to view anitem described by a data item 152 included in the search results.

At operation 620, at the server machine 106, the communication module501 may receive the request. At operation 622, the saved search module502 may perform the requested behaviour. For example, the saved searchmodule 502 may cause another user interface 120 to be generated forviewing the data item 152 and communicate the user interface 120 back tothe user.

At operation 624, the saved search module 502 may identify one or moreproperties 560 based on the user behaviour. For example, the savedsearch module 502 may identify one or more properties 560 based on theelements 154 in the data item 152 that was viewed. For example, in theabove mentioned listing for the Camaro, the following properties 560 maybe identified:

COLOR=RED PRICE RANGE=$15-20K, USD CYLINDERS=8

At operation 626, the saved search module 502 may store the one or moreproperties 560 in the saved search property information 558.

FIG. 10B is a block diagram illustrating a method 640, according to anembodiment, for generating search results based on properties 560. Atoperation 642, the saved search module 502 may add the properties 560 tothe constraints 210 prior to searching the data item information 119.For example, the saved search module 502 may identify data items 152 inthe data item information 119 that match the constraints 210 and furthermatch the properties 560. For example, the saved search module 502 mayidentify data items 152 that match the constraints 210 ((“Camaro” OR“sports car”) AND (“COLOR=RED” OR “PRICE RANGE=$15-20K, USD)) that arefurther combined with data items 152 that match the constraints 210((“Camaro” OR “sports car”) but NOT any of the properties 560.Accordingly, the search results are segregated into two groups of dataitems 152 where the first group matches the constraints 210 and at leastone property 560 and the second group matches the constraints 210 butnot any of the properties 560.

At operation 644, the saved search module 502 may order the searchresults according to the properties 560. For example, the saved searchmodule 502 may order the data items 152 in the search results from thegreatest number of matching properties 560 to the least number ofmatching properties 560 that are followed by data items 152 with nomatching properties 560.

Reordering the Display of Information in a Data Item Based on PreferredData Item Information

FIG. 11 is a block diagram illustrating a system 650, according to anembodiment, to reorder the display of information in a data item 152based on preferred data item information. The system 650 may include aclient machine 102 coupled to a monitor 103 that receives a request(operation “A”) that is communicated over a network 104 (e.g., Internet)to an information store and retrieve platform 105 that includes a servermachine 106 that, in turn, includes a request module 652 that receivesthe request (operation “B”) and a handler module 654 that processes therequest. The request may include a search request or a browsing request.The search request may include a query that includes one or moreconstraints 210, as previously described, which are stored as preferreddata item information 656 in the form of search history information andutilized to generate search results. The browsing request may include aselection that may be utilized to identify data items or to navigate ahierarchy of categories that include the data items. Further, thebrowsing request may be used to identify one or more properties 560, aspreviously described, which are stored as preferred data iteminformation 656 in the form of browsing history information. Forexample, the property may include a category, an attribute-value pair(e.g., CONDITION=NEW, AUTHOR=TOLSTOY), and the like that are stored asproperties. A user may iterate the above described operations (operationA & B) causing the storage and accumulation of preferred data iteminformation 656 (e.g., constraints 210 and properties). Subsequent tothe storage and accumulation of the preferred data item information 656,a request to display a single data item 152 may be received from theclient machine 102 and the information in a data item 152 may beselectively displayed based on the preferred data item information 656.For example, in the absence of preferred data item information 656, adata item 152 may include ten elements 154 numbered one through ten andthe elements 154 may be displayed consecutively in ascending order.Further, in the absence of preferred data item information 656, theinformation in a particular element 154 may be displayed as entered by auser. According to one embodiment of the present disclosure, thepreferred data item information 656 may be used to reorder the displayof information in a data item 152.

Broadly, at the client machine 102, the monitor 103 may receive arequest (operation “C”) to view a data item 153 (e.g., listing) that iscommunicated over the network 104 (e.g., Internet) to the server machine106 where the request module 652 receives the request and the handlermodule 654 processes the request to generate a user interface in theform of a listing page. The handler module 654 may reorder the displayof the information in the data item 152 based on preferred data iteminformation 656 (e.g., constraints 210, properties 560). According to anembodiment, the display of the information in the data item 152 may bereordered as primary data item information (e.g., “LEATHER INTERIOR” and“COLOR RED”) for immediate display and as secondary data iteminformation for subsequent display (e.g., after receiving a page-down,scroll-down, swipe-down, etc.).

It will be appreciated that other embodiments may include a clientmachine 102 that identifies the primary data item information based onpreferred data item information 656 and generates and formats aninterface (e.g., user interface) based on the primary data iteminformation. For example, in such an embodiment, the request module 652and the handler module 654 may be adapted to perform the same or similarfunctions on the client machine 102 and portions of the preferred dataitem information 656 may be stored on the client machine 102. In yetanother embodiment, the request module 652 and the handler module 654may be adapted to perform the same or similar functions on the clientmachine 102 and portions of the preferred data item information 656 maybe communicated to the client machine 102 as are necessary to performthe same functions.

FIG. 12A is a block diagram illustrating user information 116, accordingto an embodiment. The user information 116 may include multiplepreferred data item information 656 entries that are respectively usedto store and retrieve preferred data item information 656 for particularusers.

FIG. 12B is a block diagram illustrating preferred data item information656, according to an embodiment. The preferred data item information 656may include browsing history information 670 and searching historyinformation 672. The browsing history information 670 may includeproperties 560 that are identified based on the browsing history of theuser. For example, the properties 560 may include category that may benavigated in a hierarchy of categories, a brand, a price range, apurchasing format (auction, buy it now), a color, a size specification,a condition (e.g., new, used, etc.), an item or service location (e.g.,San Jose, Santa Clara County, Calif., United States, North America,etc.) or any other property that is descriptive of an object or service.The searching history information 672 may include constraints 210 thatare received in a query for data items. The constraints 210 may includeone or more keywords, categories, or the like.

FIG. 13 is a flow chart illustrating a method 700, according to anembodiment, to reorder the display of information in a data item 152based on preferred data item information 656. Illustrated on the left isa client machine 102 and illustrated on the right is a server machine106. The method 700 may commence at operation 710 with the clientmachine 102 communicating a browsing request to the server machine 106.The browsing request may include a category (e.g., SPORTS CARS) toidentify a category in hierarchy of categories to browse data items, anattribute-value pair (e.g., (“COLOR=RED,” “INTERIOR=LEATHER”) toidentify data items, and the like.

At operation 712, at the server machine 106, request module 652 mayreceive the request. At operation 714, the handler module 654 mayprocess the request to identify properties 560 based on the browsingrequest, store the properties 560 as browsing history information 670,and process the browsing request. For example, the handler module 654may identify the properties 560 “CATEGORY=SPORTS CARS,” “COLOR=RED,” and“INTERIOR=LETHER,” store the properties 560 in the browsing historyinformation 670 that is associated with the user, and complete theprocessing of the browsing request.

At operation 720 with the client machine 102 may communicate a searchrequest to the server machine 106. The search request may include aquery that includes constraints. For example, the constraints mayinclude keywords (e.g., “Camaro”).

At operation 722, at the server machine 106, request module 652 mayreceive the request. At operation 724, the handler module 654 mayprocess the request to identify constraints 210 based on the searchrequest, store the constraints 210 as searching history information 672,and process the search request. For example, the handler module 654 mayidentify the keyword constraint “Camaro” store the constraint 210 in thesearching history information 672 that is associated with the user, andcomplete the processing of the search request.

At operation 730, the client machine 102 may communicate a request todisplay a data item 152. For example, the request may be communicated toa network-based marketplace and the data item 152 may be a listing thatdescribes a Camaro that is being offered for sale on a network-basedmarketplace.

At operation 732, at the server machine 106, the request module 652 mayreceive the request to display the data item 152. At operation 734, thehandler module 654 may identify primary data item information based onthe preferred data item information 656 that is associated with theuser. For example, the handler module 654 may compare the information inthe data item 152 with the properties 560 that are stored in thebrowsing history information 670 and register an identification ofprimary data item information responsive to a match. Also for example,the handler module 654 may compare the information in the data item 152with the constraints 210 that are stored in the searching historyinformation 672 and register an identification of primary data iteminformation responsive to a match. At operation 736, the handler module654 may generate and format an interface (e.g., user interface) based onthe primary data item information. For example, the handler module 654may generate and format an user interface (e.g., listing page) based onthe data item 152 in the form of a listing for a Camaro where theprimary data item information may include “INTERIOR=LEATHER” and“COLOR=RED,” as shown in FIG. 14A, and secondary data item informationmay include “ENGINE=8 CYLINDER” and “PRICE=$20K.” At operation 710, thehandler module may communicate the interface to the client machine 102.

At operation 712, the client machine 102 may display the user interfaceincluding at least the primary data information and not the secondarydata item information.

FIG. 14A is a block diagram illustrating a user interface 750, accordingto an embodiment, of a listing page that is generated based on preferreddata item information 656. The listing page may be generated by theserver machine 106 and communicated to the client machine 102 responsiveto a request to view a particular data item 152. The data item 152 mayinclude a listing that includes an element 154 with a description for aCamaro that is being offered for sale on a network-based marketplace.The user interface 750 may include primary data item information (e.g.,‘LEATHER INTERIOR″ and “COLOR”) that is retrieved from the element 154of the data item 152 that includes the description of the Camaro. Theprimary data item information 752 is immediately displayed. In contrast,the secondary data item information 754 (e.g., ‘8 CYLINDER ENGINE″ and“PRICE $20K”) may also be included in the element 154 of the data item152 that includes the description of the Camaro but it is notimmediately displayed. The secondary information may be displayed with asubsequent request of a user (e.g., page-down, scroll-down, etc.).

FIG. 14B is a block diagram illustrating a user interface 760, accordingto an embodiment, of a listing page that is generated based on preferreddata item information 762. The user interface 760 displays the same dataitem 152 (e.g., listing) as illustrated in user interface 750 in FIG.14A, however, the browsing history information 670 and searching historyinformation 672 is not the same. Rather, the browsing historyinformation 670 and search history may include user behaviours thatindicate an interest in different primary data item information 752including “8 CYLINDER ENGINE” and “PRICE “$20K.” For example, the usermay be associated with searching history information 672 that includesthe constraints 210 “Camaro 8 cylinder engine price range$15,000.00-$25,000.00.” Further for example, a user may be associatedwith browsing history information 670 that includes properties 560 thatdescribe Camaros with 8 cylinder engines (e.g., ENGINE=8 CYLINDER) andprices in the range from $15,000.00-$25,000.00 (e.g., PRICERANGE=$15-20K, USD).

In another embodiment, the elements 154 in the data item 152 may bedisplayed in an order that is determined based on the preferred dataitem information 656. For example, a data item for a listing on anetwork-based marketplace may include the elements 154 title,description, price, condition, purchase format (e.g., auction, immediatepurchase) that are displayed in the recited order in the absence of thepreferred data item information 656. Responsive to the identification ofpreferred data item information 656, the respective elements 154 may beidentified as primary data item information or secondary data iteminformation based on the preferred data item information 656. Theprimary data item information may be immediately displayed responsive tothe request to display the data item 152 and the secondary data iteminformation is displayed responsive to a subsequent request (e.g.,page-down, scroll-down, swipe-down).

The term “interface” was described in embodiments that include a userinterface 660; however, it will be appreciated by those skilled in theart that the “interface” may also be embodied as a machine interface(e.g., SGML) including machine view components, an audio interfaceincluding audio view components, a kinetic interface including kineticview components, or some other interface.

Network-Based Marketplace

FIG. 15 further illustrates a system 1010, according to an embodiment.The networked system 1010 corresponds to the system 100 in FIG. 1,system 500 in FIG. 8A, or system 650 in FIG. 11, accordingly, the sameor similar references have been used to indicate the same or similarfeatures unless otherwise indicated. The networked system 1010 mayinclude a network-based marketplace 1012. The network-based marketplace1012 provides server-side functionality, via a network 1014 (e.g., theInternet or wide area network (WAN)) to one or more clients. FIG. 15illustrates, for example, a web client 1016 (e.g., a browser, such asthe Internet Explorer browser developed by Microsoft Corporation ofRedmond, Wash. State) executing on client machine 1020, a programmaticclient 1018 executing on client machine 1022, and a mobile web client1045 executing on mobile device 1011. For example, the mobile web client1045 may be embodied as one or more mobile modules that are used tosupport the Blackberry™ wireless hand held business or smart phonemanufactured by Research In Motion of Waterloo, Ontario.

An application program interface (API) server 1024 and a web server 1026are coupled to, and provide programmatic and web interfaces respectivelyto, one or more application servers 1028. The application servers 1028host one or more marketplace applications 1030 and payment applications1032. The application servers 1028 are, in turn, shown to be coupled toone or more database servers 1034 that facilitate access to one or moredatabases 1036.

The marketplace applications 1030 may provide a number of marketplacefunctions and services to users that access the network-basedmarketplace 1012. The payment applications 1032 may likewise provide anumber of payment services and functions to users. The paymentapplications 1032 may allow users to accumulate value in accounts andthen to later redeem the accumulated value for products (e.g., goods orservices) that are made available via the marketplace applications 1030.The value may be accumulated in a commercial currency, such as the U.S.dollar, or a proprietary currency, such as “points.” While themarketplace applications 1030 and payment applications 1032 are shown inFIG. 15 to both form part of the network-based marketplace 1012, it willbe appreciated that, in alternative embodiments, the paymentapplications 1032 may form part of a payment service that is separateand distinct from the network-based marketplace 1012.

Further, while the networked system 1010 shown in FIG. 15 employsclient-server architecture, embodiments of the present disclosure are ofcourse not limited to such an architecture and could equally well findapplication in a distributed, or peer-to-peer, architecture system, forexample. The various marketplace applications 1030 and paymentapplications 1032 could also be implemented as standalone softwareprograms, which do not necessarily have networking capabilities.

The web client 1016 and mobile web client 1045 access the variousmarketplace applications 1030 and payment applications 1032 via the webinterface supported by the web server 1026. Similarly, the programmaticclient 1018 accesses the various services and functions provided by themarketplace applications 1030 and payment applications 1032 via theprogrammatic interface provided by the API server 1024. The programmaticclient 1018 may, for example, be a seller application (e.g., theTurboLister application developed by eBay Inc., of San Jose, Calif.) toenable sellers to author and manage listings on the network-basedmarketplace 1012 in an off-line manner, and to perform batch-modecommunications between the programmatic client 1018 and thenetwork-based marketplace 1012.

FIG. 15 also illustrates a third party application 1043, executing on athird party server machine 1041, as having programmatic access to thenetworked system 1010 via the programmatic interface provided by the APIserver 1024. The third party website may communicate user interfaces tothe client machines 1022, 1020 or mobile device 1011.

The mobile device 1011 may be embodied as a mobile phone, a personaldigital assistant (PDA), a cell phone, or any other wireless device thatis capable of communicating with the network-based marketplace 1012. Forexample, the mobile device 1011 may be embodied as an iPhone mobilephone manufactured by Apple, Inc. of Cupertino, Calif. or, as previouslymentioned, a Blackberry™ mobile phone manufactured by Research In Motionof Waterloo, Ontario.

Marketplace and Payment Applications

FIG. 16 is a block diagram illustrating marketplace applications 1030and payment applications 1032 that, in one example embodiment, areprovided as part of the networked system 1010 of FIG. 15. Themarketplace applications 1030 and payment applications 1032 may behosted on dedicated or shared server machines, as shown on FIG. 15, thatare communicatively coupled to enable communications between servermachines. The applications themselves are communicatively coupled (e.g.,via appropriate interfaces) to each other and to various data sources,so as to allow information to be passed between the applications or soas to allow the applications to share and access common data. Theapplications may furthermore access one or more databases 1036 via thedatabase servers 1034, as shown on FIG. 15. The network-basedmarketplace 1012 of FIG. 15 may provide a number of publishing, listingand price-setting mechanisms whereby a seller may list (or publishinformation concerning) goods or services for sale; a buyer may indicatea desire to purchase such goods or services; and a price can be set fora transaction pertaining to the goods or services. To this end, themarketplace applications 1030 are shown to include at least onepublication application 1040 and one or more auction applications 1042which support auction-format listing and price setting mechanisms (e.g.,English, Dutch, Vickrey, Chinese, Double, Reverse auctions, etc.). Thevarious auction applications 1042 may also provide a number of featuresin support of such auction-format listings, such as a reserve pricefeature whereby a seller may specify a reserve price in connection witha listing and a proxy-bidding feature whereby a bidder may invokeautomated proxy bidding.

A number of fixed-price applications 1044 support fixed-price listingformats (e.g., the traditional classified advertisement-type listing ora catalogue listing) and buyout-type listings. Specifically, buyout-typelistings (e.g., including the Buy-It-Now (BIN) technology developed byeBay Inc., of San Jose, Calif.) may be offered in conjunction withauction-format listings and may allow a buyer to purchase goods orservices, which are also being offered for sale via an auction, for afixed price that is typically higher than the starting price of theauction.

Store application(s) 1046 allows a seller to group listings within a“virtual” store, which may be branded and otherwise personalized by andfor the seller. Such a virtual store may also offer promotions,incentives and features that are specific and personalized to a relevantseller.

Reputation applications 1048 allow users that transact, utilizing thenetwork-based marketplace 1012, to establish, build and maintainreputations, which may be made available and published to potentialtrading partners. Consider that where, for example, the network-basedmarketplace 1012 supports person-to-person trading, users may otherwisehave no history or other reference information whereby thetrustworthiness and credibility of potential trading partners may beassessed. The reputation applications 1048 allow a user to establish areputation within the network-based marketplace 1012 over time, forexample, through feedback provided by other transaction partners and bythe computation of a feedback score based on the feedback. For example,the feedback score may be publicly displayed by the network-basedmarketplace 1012. Other potential trading partners may then referencesuch a feedback score for the purposes of assessing credibility andtrustworthiness.

Personalization applications 1050 allow users of the network-basedmarketplace 1012 to personalize various properties 560 of theirinteractions with the network-based marketplace 1012. For example, auser may, utilizing an appropriate personalization application 1050,create a personalized reference page at which information regardingtransactions to which the user is (or has been) a party may be viewed.Further, a personalization application 1050 may enable a user topersonalize listings and other properties 560 of their interactions withthe networked system 1010 and other parties.

The networked system 1010 may support a number of marketplaces that arecustomized, for example, for specific geographic regions. A version ofthe networked system 1010 may be customized for the United Kingdom,whereas another version of the networked system 1010 may be customizedfor the United States. Some of these versions may operate as anindependent marketplace, or may be customized (or internationalized)presentations of a common underlying marketplace. The networked system1010 may accordingly include a number of internationalizationapplications 1052 that customize information (and/or the presentation ofinformation) by the networked system 1010 according to predeterminedcriteria (e.g., geographic, demographic or marketplace criteria). Forexample, the internationalization applications 1052 may be used tosupport the customization of information for a number of regionalwebsites that are operated by the networked system 1010 and that areaccessible via respective servers 1024 and 1026 both of FIG. 15.

Navigation of the network-based marketplace 1012 may be facilitated byone or more navigation applications 1054. For example, the network-basedmarketplace 1012 may receive search information to search for items onthe network-based marketplace 1012. A browse application may allow usersto browse various category, catalogue, or inventory data structuresaccording to which listings may be classified within the networkedsystem 1010. Various other navigation applications may be provided tosupplement the search and browsing applications. For example, thenavigation applications 1054 may include the receiving module 110, theprocessing module 112, the communication module 501 and the saved searchmodule 502, according to an embodiment.

In order to make listings available via the networked system 1010 asvisually informing and attractive as possible, the marketplaceapplications 1030 may include one or more imaging applications 1056 withwhich users may upload images (e.g., thumbnail images) for inclusionwithin listings. An imaging application 1056 also operates toincorporate images (e.g., thumbnail images) within viewed listings. Theimaging applications 1056 may also support one or more promotionalfeatures, such as image galleries that are presented to potentialbuyers. For example, sellers may pay an additional fee to have an imageincluded within a gallery of images for promoted items.

Listing creation applications 1058 allow sellers to conveniently authorlistings pertaining to goods or services that they wish to transact viathe network-based marketplace 1012, while the listing managementapplications 1060 allow sellers to manage such listings. Specifically,where a particular seller has authored and/or published a large numberof listings, the management of such listings may present a challenge.The listing creation applications 1058 may further facilitate a buyerwatching specific listings or specific types of listings. The listingmanagement applications 1060 provide a number of features (e.g.,auto-relisting, inventory level monitors, etc.) to assist the seller inmanaging such listings.

One or more post-listing management applications 1062 may also assistsellers with a number of activities that may typically occurpost-listing. For example, upon completion of an auction facilitated byone or more auction applications 1042, a seller may wish to leavefeedback regarding a particular buyer. To this end, a post-listingmanagement application 1062 may provide an interface to one or morereputation applications 1048, so as to allow the seller conveniently toprovide feedback regarding multiple buyers to the reputationapplications 1048.

Dispute resolution applications 1064 provide mechanisms whereby disputesarising between transacting parties may be resolved. For example, thedispute resolution applications 1064 may provide guided procedureswhereby the parties are guided through a number of steps in an attemptto settle a dispute. In the event that the dispute cannot be settled viathe guided procedures, the dispute may be escalated to a third partymediator or arbitrator.

A number of fraud prevention applications 1066 implement fraud detectionand prevention mechanisms to reduce the occurrence of fraud within thenetwork-based marketplace 1012.

Messaging applications 1068 are responsible for the generation anddelivery of messages to users of the network-based marketplace 1012,with such messages, for example, advising users regarding the status oflistings at the network-based marketplace 1012 (e.g., providing “outbid”notices to bidders during an auction process or to providing promotionaland merchandising information to users). Respective messagingapplications 1068 may utilize any one of a number of message deliverynetworks and platforms to deliver messages to users. For example,messaging applications 1068 may deliver electronic mail (e-mail),instant message (IM), short message service (SMS), text, facsimile, orvoice (e.g., voice over IP (VoIP)) messages via the wired (e.g., theInternet), plain old telephone service (POTS), or wireless (e.g.,mobile, cellular, WiFi (e.g., IEEE 802.11 technologies including802.11n, 802.11b, 802.11g, and 802.11a)), worldwide interoperability formicrowave access (e.g., WiMAX-IEEE 802.16) networks.

Merchandising applications 1070 support various merchandising functionsthat are made available to sellers to enable sellers to increase salesvia the network-based marketplace 1012. The merchandising applications1070 also operate the various merchandising features that may be invokedby sellers and may monitor and track the success of merchandisingstrategies employed by sellers. In addition, the user may utilize thetransaction incentivizing applications 1072 to select one or morecriterion that may be used to generate a social goodness index that isused to generate a badge. Mobile applications 1074 support mobiledevices that access the features and services that are provided by thenetwork-based marketplace 1012.

Data Structures

FIG. 17 is a high-level entity-relationship diagram, illustratingvarious tables 1080 that may be maintained within the databases 1036 ofFIG. 15, and that are utilized by and support the marketplaceapplications 1030 and payment applications 1032 both of FIG. 16. A usertable 1082 contains a record for registered users of the network-basedmarketplace 1012 of FIG. 15. A user may operate as a seller, a buyer, orboth, within the network-based marketplace 1012. In one exampleembodiment, a buyer may be a user that has accumulated value (e.g.,commercial or proprietary currency), and is accordingly able to exchangethe accumulated value for items that are offered for sale by thenetwork-based marketplace 1012.

The tables 1080 also include an items table 1086 in which item records(e.g., listings) are maintained for goods and services that areavailable to be, or have been, transacted via the network-basedmarketplace 1012. Item records (e.g., listings) within the items table1086 may furthermore be linked to one or more user records within theuser table 1082, so as to associate a seller and one or more actual orpotential buyers with an item record (e.g., listing).

A transaction table 1088 may contain a record for each transaction(e.g., a purchase or sale transaction or auction) pertaining to itemsfor which records exist within the items table 1086.

An order table 1090 may be populated with order records, with each orderrecord being associated with an order. Each order, in turn, may beassociated with one or more transactions for which records exist withinthe transaction table 1088.

Bid records within a bids table 1092 may relate to a bid received at thenetwork-based marketplace 1012 in connection with an auction-formatlisting supported by an auction application 1042 of FIG. 16. A feedbacktable 1094 is utilized by one or more reputation applications 1048 ofFIG. 16, in one example embodiment, to construct and maintain reputationinformation concerning users in the form of a feedback score. A historytable 1096 may maintain a history of transactions to which a user hasbeen a party. One or more attributes tables 1098 may record attributeinformation that pertains to items for which records exist within theitems table 1086. Considering only a single example of such anattribute, the attributes tables 1098 may indicate a currency attributeassociated with a particular item, with the currency attributeidentifying the currency of a price for the relevant item as specifiedby a seller.

A search table 1093 may store search information that has been enteredby a user (e.g., buyer) who is looking for a specific type of listing. Acustomization table 1095 may store customization information forincentivizing transactions that enhance social goodness.

Formatting level summary information 1097 may facilitate formatting userinterfaces 120.

Modules, Components and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules may constitute eithersoftware modules (e.g., code embodied (1) on a non-transitorymachine-readable medium or (2) in a transmission signal) orhardware-implemented modules. A hardware-implemented module is atangible unit capable of performing certain operations and may beconfigured or arranged in a certain manner. In example embodiments, oneor more computer systems (e.g., a standalone, client or server computersystem) or one or more processors may be configured by software (e.g.,an application or application portion) as a hardware-implemented modulethat operates to perform certain operations as described herein.

In various embodiments, a hardware-implemented module may be implementedmechanically or electronically. For example, a hardware-implementedmodule may comprise dedicated circuitry or logic that is permanentlyconfigured (e.g., as a special-purpose processor, such as a fieldprogrammable gate array (FPGA) or an application-specific integratedcircuit (ASIC)) to perform certain operations. A hardware-implementedmodule may also comprise programmable logic or circuitry (e.g., asencompassed within a general-purpose processor or other programmableprocessor) that is temporarily configured by software to perform certainoperations. It will be appreciated that the decision to implement ahardware-implemented module mechanically, in dedicated and permanentlyconfigured circuitry, or in temporarily configured circuitry (e.g.,configured by software) may be driven by cost and time considerations.

Accordingly, the term “hardware-implemented module” should be understoodto encompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired) or temporarily ortransitorily configured (e.g., programmed) to operate in a certainmanner and/or to perform certain operations described herein.Considering embodiments in which hardware-implemented modules aretemporarily configured (e.g., programmed), each of thehardware-implemented modules need not be configured or instantiated atany one instance in time. For example, where the hardware-implementedmodules comprise a general-purpose processor configured using software,the general-purpose processor may be configured as respective differenthardware-implemented modules at different times. Software mayaccordingly configure a processor, for example, to constitute aparticular hardware-implemented module at one instance of time and toconstitute a different hardware-implemented module at a differentinstance of time.

Hardware-implemented modules can provide information to, and receiveinformation from, other hardware-implemented modules. Accordingly, thedescribed hardware-implemented modules may be regarded as beingcommunicatively coupled. Where multiples of such hardware-implementedmodules exist contemporaneously, communications may be achieved throughsignal transmission (e.g., over appropriate circuits and buses thatconnects the hardware-implemented modules). In embodiments in whichmultiple hardware-implemented modules are configured or instantiated atdifferent times, communications between such hardware-implementedmodules may be achieved, for example, through the storage and retrievalof information in memory structures to which the multiplehardware-implemented modules have access. For example, onehardware-implemented module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware-implemented module may then,at a later time, access the memory device to retrieve and process thestored output. Hardware-implemented modules may also initiatecommunications with input or output devices, and can operate on aresource (e.g., a collection of information).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods described herein may be at least partiallyprocessor-implemented. For example, at least some of the operations of amethod may be performed by one or more processors orprocessor-implemented modules. The performance of certain of theoperations may be distributed among the one or more processors, not onlyresiding within a single machine, but deployed across a number ofmachines. In some example embodiments, the processor or processors maybe located in a single location (e.g., within a home environment, anoffice environment or as a server farm), while in other embodiments theprocessors may be distributed across a number of locations.

The one or more processors may also operate to support performance ofthe relevant operations in a “cloud computing” environment or as a“software as a service” (SaaS). For example, at least some of theoperations may be performed by a group of computers (as examples ofmachines including processors), these operations being accessible via anetwork 1014 (e.g., the Internet) and via one or more appropriateinterfaces (e.g., application program interfaces (APIs).)

Electronic Apparatus and System

Example embodiments may be implemented in digital electronic circuitry,or in computer hardware, firmware, software, or in combinations of them.Example embodiments may be implemented using a computer program product,e.g., a computer program tangibly embodied in an information carrier,e.g., in a machine-readable medium for execution by, or to control theoperation of, data processing apparatus, e.g., a programmable processor,a computer, or multiple computers.

A computer program can be written in any form of programming language,including compiled or interpreted languages, and it can be deployed inany form, including as a stand-alone program or as a module, subroutine,or other unit suitable for use in a computing environment. A computerprogram can be deployed to be executed on one computer or on multiplecomputers at one site or distributed across multiple sites andinterconnected by a communication network.

In example embodiments, operations may be performed by one or moreprogrammable processors executing a computer program to performfunctions by operating on input data and generating output. Methodoperations can also be performed by, and apparatus of exampleembodiments may be implemented as, special purpose logic circuitry,e.g., a field programmable gate array (FPGA) or an application-specificintegrated circuit (ASIC).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. Inembodiments deploying a programmable computing system, it will beappreciated that both hardware and software architectures requireconsideration. Specifically, it will be appreciated that the choice ofwhether to implement certain functionality in permanently configuredhardware (e.g., an ASIC), in temporarily configured hardware (e.g., acombination of software and a programmable processor), or a combinationof permanently and temporarily configured hardware may be a designchoice. Below are set out hardware (e.g., machine) and softwarearchitectures that may be deployed, in various example embodiments.

Example Machine Architecture/Machine-Readable Medium

FIG. 18 is a block diagram of a machine within which instructions may beexecuted for causing the machine to perform any one or more of themethodologies discussed herein. In one example embodiment, the machinemay be the client machines 102, 1022, 1020, 1041 or any other machineidentified in the present application. In one example embodiment, themachine may be the mobile device 1011 or any other device identified inthe present application. In one example embodiment, the machine may bethe server machines 106, 1024, 1026, 1028, 1034 or any of the otherservers identified in the present application. In alternativeembodiments, the machine operates as a standalone device or may beconnected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine 102 in a server-client network environment, or as a peermachine in a peer-to-peer (or distributed) network environment. Themachine may be a personal computer (PC), a tablet PC, a set-top box(STB), a personal digital assistant (PDA), a cellular telephone, a webappliance, a network router, switch or bridge, or any machine capable ofexecuting instructions (sequential or otherwise) that specify actions tobe taken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein.

The example computer system 1100 includes a processor 1102 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) orboth), a main memory 1104 and a static memory 1106, which communicatewith each other via a bus 1108. The computer system 1100 may furtherinclude a video display unit 1110 (e.g., a liquid crystal display (LCD)or a cathode ray tube (CRT)). The computer system 1100 also includes analphanumeric input device 1112 (e.g., a keyboard), a user interface (UI)navigation device 1114 (e.g., a mouse), a disk drive unit 1116, a signalgeneration device 1118 (e.g., a speaker) and a network interface device1120.

Machine-Readable Medium

The drive unit 1116 includes a machine-readable medium 1122 on which isstored one or more sets of instructions and data structures (e.g.,software) 1124 embodying or utilized by any one or more of themethodologies or functions described herein. The instructions 1124 mayalso reside, completely or at least partially, within the main memory1104 and/or within the processor 1102 during execution thereof by thecomputer system 1100, the main memory 1104 and the processor 1102 alsoconstituting machine-readable media 1122. Instructions may also residewithin the static memory 1106.

While the machine-readable medium 1122 is shown in an example embodimentto be a single medium, the term “machine-readable medium” may include asingle medium or multiple media (e.g., a centralized or distributeddatabase, and/or associated caches and servers) that store the one ormore instructions or data structures 1024. The term “machine-readablemedium” shall also be taken to include any tangible medium that iscapable of storing, encoding or carrying instructions 1024 for executionby the machine and that cause the machine to perform any one or more ofthe methodologies of the present disclosure, or that is capable ofstoring, encoding or carrying data structures utilized by or associatedwith such instructions 1024. The term “machine-readable medium” shallaccordingly be taken to include, but not be limited to, solid-statememories, and optical and magnetic media. Specific examples ofmachine-readable media 1122 include non-volatile memory, including byway of example semiconductor memory devices, e.g., erasable programmableread-only memory (EPROM), electrically erasable programmable read-onlymemory (EEPROM), and flash memory devices; magnetic disks such asinternal hard disks and removable disks; magneto-optical disks; andCD-ROM and DVD-ROM disks.

Transmission Medium

The instructions 1124 may further be transmitted or received over acommunications network 1126 using a transmission medium. Theinstructions 1124 may be transmitted using the network interface device1120 and any one of a number of well-known transfer protocols (e.g.,HTTP). Examples of communication networks include a local area network(“LAN”), a wide area network (“WAN”), the Internet, mobile telephonenetworks, plain old telephone (POTS) networks, and wireless datanetworks (e.g., WiFi and WiMax networks). The term “transmission medium”shall be taken to include any intangible medium that is capable ofstoring, encoding or carrying instructions for execution by the machine,and includes digital or analogue communications signals or otherintangible media to facilitate communication of such software.

Although an embodiment has been described with reference to specificexample embodiments, it will be evident that various modifications andchanges may be made to these embodiments without departing from thebroader spirit and scope of the disclosure. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense. The accompanying drawings that form a parthereof, show by way of illustration, and not of limitation, specificembodiments in which the subject matter may be practiced. Theembodiments illustrated are described in sufficient detail to enablethose skilled in the art to practice the teachings disclosed herein.Other embodiments may be utilized and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. This Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

Such embodiments of the inventive subject matter may be referred toherein, individually and/or collectively, by the term “invention” merelyfor convenience and without intending to voluntarily limit the scope ofthis application to any single invention or inventive concept if morethan one is in fact disclosed. Thus, although specific embodiments havebeen illustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b), requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin a single embodiment for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separate embodiment.

The illustrations of embodiments described herein are intended toprovide a general understanding of the structure of various embodiments,and they are not intended to serve as a complete description of all theelements and features of apparatus and systems that might make use ofthe structures described herein. Many other embodiments will be apparentto those of ordinary skill in the art upon reviewing the abovedescription. Other embodiments may be utilized and derived therefrom,such that structural and logical substitutions and changes may be madewithout departing from the scope of this disclosure. The figuresprovided herein are merely representational and may not be drawn toscale. Certain proportions thereof may be exaggerated, while others maybe minimized. Accordingly, the specification and drawings are to beregarded in an illustrative rather than a restrictive sense.

Thus, systems and methods to adapt search results were disclosed. Whilethe present disclosure has been described in terms of several exampleembodiments, those of ordinary skill in the art will recognize that thepresent disclosure is not limited to the embodiments described, but maybe practiced with modification and alteration within the spirit andscope of the appended claims. The description herein is thus to beregarded as illustrative instead of limiting.

What is claimed is:
 1. A system comprising: at least one processor andmemory; a receiving module that is executable in the memory andconfigured to receive search information, over a network, from a clientdevice, the search information includes at least one constraint; aprocessing module that is executable in the memory and configured togenerate a first search result based on the search information, thefirst search result includes a first plurality of data items, theprocessing module is configured to communicate a first user interface,over the network, to the client device, the first user interface isformatted based on first formatting level information, the receivingmodule is configured to receive a first request, over the network, fromthe client device, the first request includes a description of a firstinteraction with the first search result, the processing module isconfigured to identify a first formatting level based on at least oneinteraction that was received previous to the receipt of the firstrequest, the processing module is configured to transition to a secondformatting level based on the first formatting level and the firstinteraction, the second formatting level is associated with secondformatting level information, the processing module is configured tocommunicate a second user interface, over the network, to the clientdevice, the second user interface is formatted based on secondformatting level information.
 2. The system of claim 1, wherein thefirst interaction is selected from a group of interactions that includesa scroll of a user interface down to display additional data itemsincluded in the first plurality of data items and a scroll of the userinterface up to display additional data items included in the firstplurality of data items.
 3. The system of claim 2, wherein theprocessing module is configured to format the second user interfacebased on the second formatting level.
 4. The system of claim 1, whereinthe first interaction is selected from a group of interactions includinga removal of a keyword from the at least one constraint and a removal ofa category from the at least one constraint.
 5. The system of claim 4,wherein the processing module is configured to generate a second searchresult based on the removal of the keyword from the at least oneconstraint and wherein the second user interface includes at least onedata item that is included in the second search result.
 6. The system ofclaim 1, wherein the first interaction is selected from a group ofinteractions that includes an addition of a keyword to the at least oneconstraint and a removal of a keyword from the at least one constraint.7. The system of claim 1, wherein the first formatting level isassociated with definition information that includes a size of a firstarea that is predetermined, a number of data items that are displayed inthe first area that is predetermined, and a number of elements todisplay for a single data item that is predetermined.
 8. The system ofclaim 1, wherein the second formatting level is associated withdefinition information that includes a size of a second area that ispredetermined, a number of data items that are displayed in the secondarea that is predetermined, and a number of elements to display for asingle data item that is predetermined, and wherein the number of dataitems that are displayed that is associated with the first formattinglevel is greater than the number of data items displayed that isassociated with the second formatting level, and wherein the number ofelements to display for a single data item that is associated with thefirst formatting level is less than the number of elements to displayfor a single data item that is associated with the second formattinglevel.
 9. The system of claim 1, wherein the processing module isconfigured to skip at least one formatting level based, at least inpart, on the previous interactions received from the user.
 10. A methodcomprising: receiving search information, over a network, from a clientdevice, the search information including at least one constraint;generating a first search result based on the search information, thefirst search result including a first plurality of data items;communicating a first user interface, over the network, to the clientdevice, the first user interface being formatted based on firstformatting level information; receiving a first request, over thenetwork, from the client device, the first request including adescription of a first interaction with the first search result;identifying a first formatting level based on at least one interactionthat was received previous to receiving the first request; transitioningto a second formatting level based on the first formatting level and thefirst interaction, the second formatting level being associated withsecond formatting level information; and communicating a second userinterface, over the network, to the client device, the second userinterface being formatted based on the second formatting levelinformation.
 11. The method of claim 10, wherein the first interactionis selected from a group of interactions including scrolling a userinterface down to display additional data items included in the firstplurality of data items and scrolling the user interface up to displayadditional data items included in the first plurality of data items. 12.The method of claim 10, further including: formatting the second userinterface based on the second formatting level.
 13. The method of claim10, wherein the first interaction is selected from a group ofinteractions including removing a keyword from the at least oneconstraint and removing a category from the at least one constraint. 14.The method of claim 13, further including: generating a second searchresult based on the removing the keyword from the at least oneconstraint and wherein the second user interface includes at least onedata item that is included in the second search result.
 15. The methodof claim 10, wherein the first interaction is selected from a group ofinteractions including adding a keyword to the at least one constraintand removing a keyword from the at least one constraint.
 16. The methodof claim 10, wherein the first formatting level is associated withdefinition information that includes a size of a first area that is apredetermined, a number of data items displayed in the first area thatis predetermined, and a number of elements to display for a single dataitem that is predetermined.
 17. The method of claim 10, wherein thesecond formatting level is associated with definition information thatincludes a size of a second area that is predetermined, a number of dataitems displayed in the second area that is predetermined, and a numberof elements to display for a single data item that is predetermined, andwherein the number of data items displayed that is associated with thefirst formatting level is greater than the number of data itemsdisplayed that is associated with the second formatting level, andwherein the number of elements to display for a single data item that isassociated with the first formatting level is less than the number ofelements to display for a single data item that is associated with thesecond formatting level.
 18. The method of claim 10, wherein thetransitioning to the second formatting level comprises skipping at leastone formatting level based, at least in part, on the previousinteractions received from the user.
 19. A non-transitorymachine-readable medium storing instructions that, when executed by amachine, cause the machine to execute actions comprising: receivingsearch information, over a network, from a client device, the searchinformation including at least one constraint; generating a first searchresult based on the search information, the first search resultincluding a first plurality of data items; communicating a first userinterface, over the network, to the client device, the first userinterface being formatted based on first formatting level information;receiving a first request, over the network, from the client device, thefirst request including a description of a first interaction with thefirst search result; identifying a first formatting level based on atleast one interaction that was received previous to the receiving thefirst request; transitioning to a second formatting level based on thefirst formatting level and the first interaction, the second formattinglevel being associated with second formatting level information; andcommunicating a second user interface, over the network, to the clientdevice, the second user interface being formatted based on secondformatting level information.
 20. The non-transitory machine-readablemedium of claim 19, wherein the transitioning to the second formattinglevel comprises skipping at least one formatting level based, at leastin part, on the previous interactions received from the user.